package com.study.schedule;

import lombok.extern.slf4j.Slf4j;
import org.joda.time.DateTime;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.concurrent.TimeUnit;

/**
 * @创建时间 2020/4/20 15:06
 */
@Slf4j
@Component
@EnableAsync//开启异步任务
@EnableScheduling
public class HelloSchedule {
    /**
     * 定时任务
     * 1. spring中6位组成，不允许有年
     * 2 second(秒)， minute(分)， hour(时),day of month(日),month(月),day of week(周几
     * 星期是  1-7
     * 3 定时任务不应该阻塞，默认是阻塞的
     * 3.1 以异步方式运行
     * 3.2 定时任务线程池。
     * 3.3 异步任务 @Async
     */
    @Async
    @Scheduled(cron = "*/10 * * * * 1")
    public void hello() throws InterruptedException {
        TimeUnit.SECONDS.sleep(3);
        log.info(new DateTime().toString());

    }
}
